package function;
import course.Course;
import course.CourseList;

import java.util.Scanner;

public class DelFunction implements IFunction{
    @Override
    public void work(CourseList courseList){
        System.out.println("删除课程");
        System.out.println("请输入你要删除的课程名称：");
        Scanner scanner=new Scanner(System.in);
        String name=scanner.nextLine();
        int currentsize=courseList.getUsedsize();//记录当前课程数组中的元素总个数
        int index=-1;//索引，记录要删除的课程在课程数组中的位置，
        for (int i = 0; i < currentsize; i++) {
            Course tmp=courseList.getCourse(i);//遍历一遍课程数组，找到要删除的课程（通过名称来找）
            if (tmp.getName().equals(name)){
                index=i;//找到了就返回下标
                break;
            }
        }
        //挪动数据
        for (int i = index; i <currentsize-1 ; i++) {//把当前位置的数据用他后面的数据覆盖，一直到最后的数据被覆盖  currentsize-1全部元素数量
            Course course=courseList.getCourse(i+1);//记录在数组中index索引后面的一个数据
            courseList.setCourses(i,course);//把后面的数据往前面覆盖
        }
        //修改usedsize的值，因为删除了变少了
         courseList.setUsedsize(currentsize-1);
        //因为是挪动数据，所以原来课程数组中最后一个元素和它前面的元素重复了虽然显示的时候不会有影响，但是严谨些还是把原来的最后置为null
        courseList.setCourses(currentsize-1,null);
    }
}
